# 作者：一只牛吗
# 2025 年01月 26日 03时 27分 40秒
# 1278599690@qq.com
# 面向对象的三大特性：封装、继承、多态、私有属性和私有方法
# str1 = "hello world"
# str1[5:5] = "123"
# print(str1)


class Cat:
    def __init__(self, name, age): # 初始化方法，实例化对象时调用
        self.__name = name
        self.__age = age

    def eat(self):
        print(f"{self.__name} is eating.")

    def drink(self):
        print(f"{self.__name} is drinking.")

    def __del__(self):  # 这类双下划线的的方法都是预定义的
        print(f"{self.__name} is being destroyed.")

    def __str__(self): # 返回对象的描述信息，用print()打印对象时调用
        '''
        对象的描述信息
        :return:
        '''
        return f"{self.__name} is {self.__age} years old."


def main():
    cat1 = Cat("Tom", 2)
    cat1.eat()
    cat1.drink()
    print(cat1)
    del cat1
    lazy_cat = Cat("Jerry", 3)
    print(lazy_cat)
    print('*********' * 10)


if __name__ == '__main__':
    main()
    # print(lazy_cat)
